void GenDerivates (ImSize, In0,In1, Ex,Ey,Et)
int  ImSize;
BYTE ** In0;
BYTE ** In1;
int  ** Ex;
int  ** Ey;
int  ** Et;
{
   int  r,c;

   for (r=0; r<ImSize; r++) {
      for (c=0; c<ImSize; c++) {
         Ex[r][c] = 0;
         Ey[r][c] = 0;
         Et[r][c] = 0;
   }  }

   for (r=0; r<ImSize-1; r++) {
      for (c=0; c<ImSize-1; c++) {
         Ex[r][c] = (int) In0[r][c+1] - In0[r][c] + In0[r+1][c+1] - In0[r+1][c] +
                          In1[r][c+1] - In1[r][c] + In1[r+1][c+1] - In1[r+1][c];
         Ey[r][c] = (int) In0[r+1][c] - In0[r][c] + In0[r+1][c+1] - In0[r][c+1] +
                          In1[r+1][c] - In1[r][c] + In1[r+1][c+1] - In1[r][c+1];
         Et[r][c] = (int) In1[r][c]   - In0[r][c]   + In1[r+1][c]   - In0[r+1][c] +
                          In1[r][c+1] - In0[r][c+1] + In1[r+1][c+1] - In0[r+1][c+1];
         Ex[r][c] /= 4;
         Ey[r][c] /= 4;
         Et[r][c] /= 4;
}  }  }
